import { Constructor } from "../ECSWorld";
import { ECSEvent } from "./ECSEvent";

/**
 * 预定义的空事件集合
 */
 const EMPTY: ECSEvent[] = [];

 
export interface ECSEventSet {

    push(event: ECSEvent): void;

    /**
     * 取得指定事件的列表
     *
     * @param constructor
     */
     fetch<T extends ECSEvent>(constructor: Constructor<T>): T[];

    /**
     * 检查是否存在指定事件
     *
     * @param constructor
     */
    has<T extends ECSEvent>(constructor: Constructor<T>): boolean;

    /**
     * 清理所有事件
     */
    clear(): void;
}